In C there is no syntactic distinction between procedures and functions. A procedure is simply a function which does not return a useful value. Traditionally C programs were constructed by decomposing the overall task into a hierarchy of functions and procedures.
As will be discussed in Chapter 4, TC and C++ provide features which encourage the object-oriented programming approach, where the overall task is decomposed instead into a collection of interacting objects, each of which encapsulates data and the procedures - or "member functions" - which act upon this data.
An understanding of C functions is required before the programmer can construct objects, and traditional C functions also find uses in such programs.